package interfaceGrafica;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JTextField;
import javax.swing.JOptionPane;

@SuppressWarnings("serial")
public class JanelaInicial extends JFrame {

	private JLayeredPane painel;
	private JLabel background;
	private JButton ok;
	private JButton exit;
	private JButton about;
	private JTextField caixaDeTexto;

	private ImageIcon backgroundImagem;
	private ImageIcon okImagem1;
	private ImageIcon okImagem2;
	private ImageIcon okImagem3;
	private ImageIcon exitImagem1;
	private ImageIcon exitImagem2;
	private ImageIcon exitImagem3;
	private ImageIcon aboutImagem1;
	private ImageIcon aboutImagem2;
	private ImageIcon aboutImagem3;

	public JanelaInicial() {
		super();

		super.setUndecorated(true);
		super.setPreferredSize(new Dimension(450, 338));
		super.setResizable(false);
		super.getContentPane().setLayout(new GridLayout());

		painel = new JLayeredPane();

		backgroundImagem = new ImageIcon(
				"Data\\Imagens\\MenuInicial\\background.png");
		okImagem1 = new ImageIcon("Data\\Imagens\\MenuInicial\\okImagem1.png");
		okImagem2 = new ImageIcon("Data\\Imagens\\MenuInicial\\okImagem2.png");
		okImagem3 = new ImageIcon("Data\\Imagens\\MenuInicial\\okImagem3.png");
		exitImagem1 = new ImageIcon(
				"Data\\Imagens\\MenuInicial\\exitImagem1.png");
		exitImagem2 = new ImageIcon(
				"Data\\Imagens\\MenuInicial\\exitImagem1.png");
		exitImagem3 = new ImageIcon(
				"Data\\Imagens\\MenuInicial\\exitImagem3.png");
		aboutImagem1 = new ImageIcon(
				"Data\\Imagens\\MenuInicial\\aboutImagem1.png");
		aboutImagem2 = new ImageIcon(
				"Data\\Imagens\\MenuInicial\\aboutImagem2.png");
		aboutImagem3 = new ImageIcon(
				"Data\\Imagens\\MenuInicial\\aboutImagem3.png");

		this.background = new JLabel();
		this.background.setIcon(backgroundImagem);
		this.background.setBounds(0, 0, 450, 338);
		painel.add(background, JLayeredPane.DEFAULT_LAYER);

		ok = new JButton();
		MenuPrincipal.inicializarBotao(painel, ok, okImagem1, okImagem2,
				okImagem3, 150, 210, okImagem2.getIconWidth(),
				okImagem2.getIconHeight());
		ok.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent me) {
				mouseClicar(ok, 1);
			}
		});

		exit = new JButton();
		MenuPrincipal.inicializarBotao(painel, exit, exitImagem1, exitImagem2,
				exitImagem3, 300, 210, exitImagem2.getIconWidth(),
				exitImagem2.getIconHeight());
		exit.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent me) {
				mouseClicar(exit, 2);
			}
		});

		about = new JButton();
		MenuPrincipal.inicializarBotao(painel, about, aboutImagem1,
				aboutImagem2, aboutImagem3, 280, 250,
				aboutImagem2.getIconWidth(), aboutImagem2.getIconHeight());
		about.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent me) {
				mouseClicar(about, 3);
			}
		});

		caixaDeTexto = new JTextField();
		caixaDeTexto.setFont(new Font("Arial", 1, 20));
		caixaDeTexto.setBounds(150, 170, 285, 30);
		caixaDeTexto.addKeyListener(new KeyAdapter() {
			public void keyPressed(KeyEvent e) {
				if (e.getKeyCode() == KeyEvent.VK_ENTER) {
					mouseClicar(ok, 1);
				}
				else
				{
					if(e.getKeyCode() == KeyEvent.VK_ESCAPE)
					{
						mouseClicar(exit, 2);
					}
				}
			}
		});
		painel.add(caixaDeTexto, JLayeredPane.PALETTE_LAYER);

		super.setContentPane(painel);
		super.pack();
		super.setLocationRelativeTo(null);
	}

	private void mouseClicar(JButton botao, int escolha) {
		if (!botao.isEnabled())
			return;
		switch (escolha) {
		case 1:
			this.setVisible(false);
			new Janela(caixaDeTexto.getText()).setVisible(true);
			break;

		case 2:
			System.exit(0);
			break;

		case 3:
			JOptionPane.showMessageDialog(this, "Mensagem", "About",
					JOptionPane.INFORMATION_MESSAGE);
			break;

		default:

			break;
		}
	}

}
